git-remote-codecommitでAmazon CodeCommitリポジトリへ接続する
概要
git-remote-codecommitを使うとAmazon CodeCommit上のリポジトリにアクセスする際の権限設定を簡単に行うことができます。
具体的には下記のようなURLでリポジトリを指定できるようになります。
codecommit://プロファイル名@リポジトリ名
使い方
(README.mdの内容とほとんど重複しますが)
git-remote-codecommit
をインストールします:pip install git-remote-codecommit
- アクセスしたいリポジトリへの参照権限がある名前付きプロファイルの設定を行います
- git コマンドや設定ファイルのURLを
codecommit://プロファイル名@リポジトリ名
に置き換えます。
プロファイルはクレデンシャルを設定する方法でも、assume-roleのどちらでもOKです。
例
git clone する場合は下記のようになります。
git clone codecommit://your_profile@your_repository
.git/config
でリモートリポジトリ設定する場合は下記のようになります。
[remote "codecommit"] url = codecommit://your_profile@your_repository
まとめ
CodeCommitへのアクセスにはアクセス用のIAMユーザーを作ったり、credential-helperを使ったりなど様々な方法がありますが、いつも使っているプロファイルをそのまま流用してリポジトリにアクセスできるので管理もシンプルになると思います。
おまけ
このツールを使うとローカルのリポジトリに異なる2つ以上のAWSアカウントのCodeCommitリポジトリをリモートリポジトリとして登録できます。
今回はこのツールを見つけるまでは下記のようなgit/config
でこれを実現しようとしていましたがcredential-helperを使ったクレデンシャル取得がうまくいきませんでした。
[remote "staging"] url = https://git-codecommit.us-east-1.amazonaws.com/v1/repos/your_repos_staging [credential "staging"] helper = !aws --region us-east-1 --profile your_staging_profile credential-helper $@ UseHttpPath = true [remote "production"] url = https://git-codecommit.us-east-1.amazonaws.com/v1/repos/your_repos_production [credential "production"] helper = !aws --region us-east-1 --profile your_production_profile credential-helper $@ UseHttpPath = true
(上記の設定でリポジトリにアクセスするにはstaging, productionを片方づつコメントアウトする必要がありました)